package com.inei.cie.utilitarios;

import java.util.ArrayList;
import java.util.List;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
import android.widget.Toast;

import com.inei.cie.R;
import com.inei.cie.dao.CapituloIVDao;

public class CapituloIV_Linderos_Adapter extends BaseAdapter{
	private LayoutInflater mInflater;
	private Context mContext;
	public List<Object> datosLindero;
	public List<Integer> tramosIniciales;
	public List<Integer> tramosFinales;
	public List<Integer> longitudesTramos;
	public List<Integer> tieneCerco;
	public List<String> sistemasPredominantes;
	public List<String> estadosConsevacion;
	public List<String> opinionesTecnicas;
	

	public CapituloIV_Linderos_Adapter(Context mContext, String idLocal,  String tipoTramo, String numeroPredio){
		datosLindero = new ArrayList<Object>();
		tramosIniciales = new ArrayList<Integer>();
		tramosFinales = new ArrayList<Integer>();
		longitudesTramos = new ArrayList<Integer>();
		tieneCerco = new ArrayList<Integer>();
		sistemasPredominantes = new ArrayList<String>();
		estadosConsevacion = new ArrayList<String>();
		opinionesTecnicas = new ArrayList<String>();
		this.mContext = mContext;
		CapituloIVDao cap4Dao = new CapituloIVDao(mContext);
		datosLindero = cap4Dao.obtenerLinderos(idLocal, tipoTramo, numeroPredio);
		mInflater = LayoutInflater.from(this.mContext);
		if(datosLindero.size() == 0){
			Toast.makeText(mContext, mContext.getString(R.string.toastListaVacia), Toast.LENGTH_SHORT).show();
		} else{
			for(int i = 0; i<datosLindero.size() / 7; i++){
				tramosIniciales.add(Integer.parseInt(datosLindero.get((i * 7)).toString()));
				tramosFinales.add(Integer.parseInt(datosLindero.get((i * 7) + 1).toString()));
				String[] conversionFloatInt = datosLindero.get((i * 7) + 2).toString().split("\\.");
				String numeroReal = "";
				if(conversionFloatInt.length > 0){
					numeroReal = conversionFloatInt[0];
				} else{
					numeroReal = datosLindero.get((i * 7) + 2).toString();
				}
				longitudesTramos.add(Integer.parseInt(numeroReal));
				/*if(conversionFloatInt.length > 0){
					longitudesTramos.add(Integer.parseInt(valor));
				} else{
					longitudesTramos.add(Integer.parseInt(datosLindero.get((i * 7) + 2).toString()));
				}*/
				//longitudesTramos.add(Integer.parseInt(datosLindero.get((i * 7) + 2).toString().split(".")[0]));
				tieneCerco.add(Integer.parseInt(datosLindero.get((i * 7) + 3).toString()));
				sistemasPredominantes.add(datosLindero.get((i * 7) + 4).toString());
				estadosConsevacion.add(datosLindero.get((i * 7) + 5).toString());
				opinionesTecnicas.add(datosLindero.get((i * 7) + 6).toString());
			}
		}
	}
	
	@Override
	public int getCount() {
		return tramosIniciales.size();
	}

	@Override
	public Object getItem(int position) {
		return tramosIniciales.get(position);
	}

	@Override
	public long getItemId(int arg0) {
		return 0;
	}

	@Override
	public View getView(int position, View convertView, ViewGroup parent) {
		ViewHolder viewHolder;
		if (convertView == null) {
			convertView = mInflater.inflate(R.layout.capitulo_iv_item_listado, null);
			viewHolder = new ViewHolder();
			viewHolder.tviNumeroTotalTramos = (TextView) convertView
					.findViewById(R.id.tviNumeroTotalTramos);
			viewHolder.tviTramoInicial = (TextView) convertView
					.findViewById(R.id.tviTramoInicial);
			viewHolder.tviTramoFinal = (TextView) convertView
					.findViewById(R.id.tviTramoFinal);
			viewHolder.tviLongitudTramo = (TextView) convertView
					.findViewById(R.id.tviLongitudTramo);
			viewHolder.tviTramoCerco = (TextView) convertView
					.findViewById(R.id.tviTramoCerco);
			viewHolder.tviPredominante = (TextView) convertView
					.findViewById(R.id.tviPredominante);
			viewHolder.tviEstadoConservacion = (TextView) convertView
					.findViewById(R.id.tviEstadoConservacion);
			viewHolder.tviOpinionTecnica = (TextView) convertView
					.findViewById(R.id.tviOpinionTecnica);
			convertView.setTag(viewHolder);
		} else {
			viewHolder = (ViewHolder) convertView.getTag();
		}
		viewHolder.tviNumeroTotalTramos.setText(String.valueOf(position+1));
		viewHolder.tviTramoInicial.setText(tramosIniciales.get(position).toString());
		viewHolder.tviTramoFinal.setText(tramosFinales.get(position).toString());
		viewHolder.tviLongitudTramo.setText(longitudesTramos.get(position).toString());
		if(tieneCerco.get(position) == 1){
			int sistemasPredominantesNumero = Integer.parseInt(sistemasPredominantes.get(position).toString());
			int estadosConservacionNumero = Integer.parseInt(estadosConsevacion.get(position).toString());
			int opinionTecnicaNumero = Integer.parseInt(opinionesTecnicas.get(position).toString());
			viewHolder.tviTramoCerco.setText("Si");
			switch (sistemasPredominantesNumero) {
				case 1:
					viewHolder.tviPredominante.setText("Alba\u00f1iler\u00eda confinada / armada");
					break;
				case 2:
					viewHolder.tviPredominante.setText("Alba\u00f1iler\u00eda sin confinar");
					break;
				case 3:
					viewHolder.tviPredominante.setText("Malla electrosoldada / alambre");
					break;
				case 4:
					viewHolder.tviPredominante.setText("Adobe / tapia / pirca u otros");
					break;
	
				default:
					break;
			}
			switch (estadosConservacionNumero) {
				case 1:
					viewHolder.tviEstadoConservacion.setText("Sin da\u00f1o");
					break;
				case 2:
					viewHolder.tviEstadoConservacion.setText("Fisuras leves");
					break;
				case 3:
					viewHolder.tviEstadoConservacion.setText("Fisuras moderadas / ataque de sales");
					break;
				case 4:
					viewHolder.tviEstadoConservacion.setText("Agrietamiento / colapso");
					break;
		
				default:
					break;
			}
			switch (opinionTecnicaNumero) {
			case 1:
				viewHolder.tviOpinionTecnica.setText("Mantenimiento");
				break;
			case 2:
				viewHolder.tviOpinionTecnica.setText("Rehabilitaci\u00f3n");
				break;
			case 3:
				viewHolder.tviOpinionTecnica.setText("Demolici\u00f3n");
				break;

			default:
				break;
			}
		} else{
			viewHolder.tviTramoCerco.setText("No");
			viewHolder.tviPredominante.setText("-------");
			viewHolder.tviEstadoConservacion.setText("-------");
			viewHolder.tviOpinionTecnica.setText("-------");
		}
		
		return convertView;
	}
	
	static class ViewHolder {
		TextView tviNumeroTotalTramos;
		TextView tviTramoInicial;
		TextView tviTramoFinal;
		TextView tviLongitudTramo;
		TextView tviTramoCerco;
		TextView tviPredominante;
		TextView tviEstadoConservacion;
		TextView tviOpinionTecnica;
		
		
	}

}